/*
 * Copyright (c) 2017. 深圳一七科技. All rights reserved.
 */

package com.yiqi.liebang.feature.mine.contract;

import com.suozhang.framework.entity.bo.UserInfoBo;
import com.suozhang.framework.framework.BasePresenter;
import com.suozhang.framework.framework.BaseView;
import com.yiqi.liebang.entity.LikeUserBo;
import com.yiqi.liebang.entity.bo.RegisterBo;
import com.yiqi.liebang.entity.bo.RelationshipBo;
import com.yiqi.liebang.entity.bo.UserCardBo;
import com.yiqi.liebang.entity.bo.UserCenterBo;
import com.yiqi.liebang.entity.bo.UserDataBo;
import com.yiqi.liebang.entity.bo.UserParamBo;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.Part;

/**
 * LIJUWEN
 *
 * @email yiyayiyayaoljw@gmail.com
 * @date 2018/7/11 9:06
 */
public interface UserContract {

    interface Model {
        Observable<UserCenterBo> getUserData(UserInfoBo userInfoBo);

        Observable<UserCardBo> getUserCardData();

        Observable<String> editUserCardData(
                String userHead,
                String userName,
                String userLabelId,
                String userIndustry,
                String userWorkAddress,
                String userDetailAddress,
                String userPhone,
                String userEmail
        );

        Observable<String> likeUser(LikeUserBo likeUserUid);

        Observable<Boolean> privateUser(UserInfoBo likeUserUid);

        Observable<UserDataBo>  getMineData();

        Observable<String> deleteFriend(RelationshipBo relationshipBo);

        Observable<String> addBlack(RelationshipBo id);
     }

    interface View extends BaseView {

        void showUserCenterSuccess(UserCenterBo s);
        void showUserCenterError(String error);
        void showUserCardSuccess(UserCardBo s);
        void showMineSuccess(UserDataBo s);
        void showLikeSuccess();
        void showPrivateSuccess(Boolean userCenterBo);
        void showUserEditSuccess();
        void showDeleteFriendSuccess();
        void showAddBlackSuccess();
        void showError(String error);


    }


    interface Presenter extends BasePresenter {
        void getUserData(String userUid, int type, String visitorUid);

        void getUserCardData();

        void editUserCardData(
                String userHead,
                String userName,
                String userLabelId,
                String userIndustry,
                String userWorkAddress,
                String userDetailAddress,
                String userPhone,
                String userEmail);

        void likeUser(String likeUserUid,int type);
        void privateUser(String userUid);

        void getMineData();

        void deleteFriend(String deleteUserId);

        void addBlack(String blackUserId);
    }
}
